In typical virtualized desktop infrastructure architectures, displays and input devices are local, and applications execute remotely in a server. The user's desktop is typically hosted in a datacenter or cloud, and the user remotely interacts with the user's desktop via a variety of endpoint devices, including desktops, laptops, thin clients, smart phones, tablets, etc. There are many advantages to this approach, including cost savings, improved mobility, easier management and deployment of applications, etc.
Remote display protocols are utilized to transfer the display of a remote desktop to the end-client. As applications executing in the desktop generate changes to the display, the remote display protocol transfers the display data to the remote client.
However, the available bandwidth between a virtual desktop server (or a remote application in general) and a client device can vary due to many factors, for example, network congestion. A virtual desktop server at one location may have a faster connection to the client device than another server at a different location. Further, the amount of required bandwidth for transmitting the desktop output can vary depending on the user's activity.
Some window operations, such as opening or closing a window in a graphical user interface (GUI), create a large amount of changes in the remote display in a short amount of time. Other operations, such as resizing the window, or scrolling the content of a window, may also cause large changes in the display area. If the network resources are not sufficient, the window operations may result in poor quality of the remote display, at least for transient periods until the window-altering operation ends.
It is in this context that embodiments arise.